using System.Collections.Generic;

namespace MvcCms.Data
{
    public interface IPortalRepository
    {
        //Portal Email Template Methods
        EmailTemplate CreateEmailTemplate(EmailTemplate emailTemplateToCreate);
        EmailTemplate EditEmailTemplate(EmailTemplate emailTemplateToEdit);
        IEnumerable<EmailTemplate> ListEmailTemplates(int portalId);

        //Portal Methods
        Portal GetPortal(int id);
        Portal GetPortal();
        Portal GetPortal(string urlAuthority);
        Portal GetPortalByName(string portalName);
        Portal CreatePortal(Portal portalToCreate);
        Portal EditPortal(Portal portalToEdit);
        IEnumerable<Portal> ListPortals();
        void DeletePortal(Portal portalToDelete);
        FeedBackItem CreateFeedBackItem(FeedBackItem feedBackItemToCreate);

        //Portal Resource Methods
        PortalResource GetPortalResource(int id);
        PortalResourceType GetPortalResourceType(int id);
        PortalResource GetPortalResource(int portalid, int typeid);
        PortalResource GetPortalResource(int portalid, string typename);
        int CreatePortalResource(PortalResource portalresoruceToCreate);
        PortalResource EditPortalResource(PortalResource portalresourceToEdit);
        IEnumerable<PortalResource> ListPortalResources(Portal portal);
        IEnumerable<PortalResourceType> ListPortalResourceTypes();

    }
}